package com.yihong.common.util;

/**
 * @ClassName AjaxJsonFactory
 * @Description ajax接口返回结果工厂类
 * @Author 孟志浩
 * @Date 2019/3/19 14:08
 **/
public class AjaxJsonFactory {

    /**
      * 指定返回状态码和消息
      * @param code     状态码
      * @param message  消息
      * @return com.yihong.common.util.AjaxJson
      * @author 孟志浩
      * @date 2019/3/19
      **/
    public static AjaxJson createAjaxJson(int code, String message){
        return new AjaxJson(code, message);
    }

    /**
      * 返回200 的指定消息
      * @param message 返回消息
      * @return com.yihong.common.util.AjaxJson
      * @author 孟志浩
      * @date 2019/3/28
      **/
    public static AjaxJson createAjaxJson(String message){
        return new AjaxJson(message);
    }

    /**
      * 采用默认code 200 返回数据和提示
      * @param message  提示
      * @param data     数据
      * @return com.yihong.common.util.AjaxJson
      * @author 孟志浩
      * @date 2019/3/19
      **/
    public static AjaxJson createAjaxJson(String message, Object data) {
        return new AjaxJson(message, data);
    }

    /**
     * 该方法适用于 指定code和数据，提示消息默认为成功
     * @param code  状态码
     * @param data  数据
     * @return com.yihong.common.util.AjaxJson
     * @author 孟志浩
     * @date 2019/3/19
     **/
    public static AjaxJson createAjaxJson(int code, Object data) {
        return new AjaxJson(code, data);
    }

    /**
      * 该方法适用于 code 200 返回指定提示消息
      * @param message 提示消息
      * @return com.yihong.common.util.AjaxJson
      * @author 孟志浩
      * @date 2019/3/19
      **/
    public static AjaxJson createOKWithMessage(String message) {
        return new AjaxJson(message);
    }

    /**
      * 该方法适用于 code 200 、消息：成功
      * @return com.yihong.common.util.AjaxJson
      * @author 孟志浩
      * @date 2019/3/19
      **/
    public static AjaxJson createOK() {
        return new AjaxJson();
    }

    /**
     * 采用默认code：200 、message：成功方式返回数据
     * @param data 数据
     * @return com.yihong.common.util.AjaxJson
     * @author 孟志浩
     * @date 2019/3/19
     **/
    public static AjaxJson createOnlyData(Object data) {
        return new AjaxJson(data);
    }
}
